Central Processing Unit (CPU)-based hardware such as a computer may be managed by an operating system (OS). However, a computer running a single OS may not be sufficient for a user's needs since the user is only allowed to use an application only supported by the single OS.
Therefore, virtualization technology has been developed to run a plurality of OSs which share a computer resource. Virtualization refers to running a plurality of OSs on a single physical hardware computer. Each OS may be referred to as a Virtual Machine (VM). Virtualization may be used to isolate an OS runtime environment to improve hardware efficiency and resource management.
When a plurality of OSs are operated in a single hardware platform, data may be shared between the OSs by using a network program such as a web-server and a File Transfer Protocol (FTP) server, or a file sharing protocol such as Server Message Block (SMB) or Common Internet File System (CIFS).
However, a file sharing method of the network program or the file sharing protocol may cause increased network overhead, and its setting may be difficult for users to perform.
In another method for sharing data between OSs, a virtual disk image may be used. A disk image is mounted and emulated as a storage in each OS, and then each OS recognizes the disk image as an actual storage. Each OS may allow users to write data to the mounted disk image and read data from the mounted disk image, so that data may be shared between OSs.
A plurality of OSs are operated on a single hardware platform, and a disk image is generated based on the hardware platform. If the disk image is accessed in the plurality of OSs at the same time, data duplication, data inconsistency, data corruption, or data collision may occur in the disk image.
Therefore, another method of sharing data between a plurality of OSs on a single hardware platform is needed.